Entity Framework (EF) এর মাধ্যমে, DbSet
একটি গুরুত্বপূর্ণ কনসেপ্ট যা ডেটাবেস টেবিলের প্রতিনিধিত্ব (representation) করে। DbSet
ক্লাসের মাধ্যমে আপনি আপনার মডেল ক্লাসের সাথে ডেটাবেসের টেবিলের সম্পর্ক স্থাপন করতে পারেন। একক শব্দে, DbSet
একটি জেনেরিক কলেকশন যা একটি নির্দিষ্ট টাইপের অর্ডারিং, ফিল্টারিং এবং কুয়েরি অপারেশন করার জন্য ব্যবহৃত হয়।
EF-এর মাধ্যমে ডেটাবেস টেবিলের সাথে কাজ করতে DbSet
ব্যবহার করা হয়। যখন আপনি DbSet
তৈরি করেন, তখন আপনি সেই টেবিলের সমস্ত রেকর্ডের উপর CRUD (Create, Read, Update, Delete) অপারেশন করতে পারবেন।
DbSet
একটি জেনেরিক ক্লাস যা আপনার মডেল ক্লাস (যেমন Student
, Course
ইত্যাদি) কে ডেটাবেস টেবিলের সাথে ম্যাপ করে। এই ক্লাসের মাধ্যমে আপনি মডেল ক্লাসের প্রতিটি ইনস্ট্যান্সকে টেবিলের রেকর্ড হিসেবে পরিচালনা করতে পারেন।
এখানে একটি উদাহরণ দেওয়া হলো, যেখানে DbSet
ব্যবহার করে একটি Student
টেবিলকে ডেটাবেসের সাথে যুক্ত করা হয়েছে:
Student ক্লাস তৈরি করা: প্রথমে একটি Student
ক্লাস তৈরি করি, যা একটি Entity হিসেবে কাজ করবে।
public class Student
{
public int StudentId { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}
DbContext ক্লাসে DbSet যোগ করা: এখন, DbContext
ক্লাসে DbSet<Student>
তৈরি করে এই মডেলটি ডেটাবেসের টেবিলের সাথে সম্পর্ক স্থাপন করা হবে। DbContext
হল EF-এর একটি মূল ক্লাস, যা ডেটাবেস অপারেশন পরিচালনা করে।
public class SchoolContext : DbContext
{
public DbSet<Student> Students { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer(@"Server=.\SQLExpress;Database=SchoolDb;Trusted_Connection=True;");
}
}
এখানে, Students
হচ্ছে DbSet<Student>
যা Student
টেবিলের প্রতিনিধিত্ব করে। DbSet
ব্যবহার করে আপনি টেবিলের রেকর্ডে অ্যাক্সেস এবং অপারেশন করতে পারেন।
DbSet এর মাধ্যমে ডেটাবেসে CRUD অপারেশন করা: DbSet
এর মাধ্যমে আপনি নিম্নলিখিত CRUD অপারেশনগুলো করতে পারেন:
using (var context = new SchoolContext())
{
var student = new Student { Name = "John Doe", Age = 22 };
context.Students.Add(student);
context.SaveChanges();
}
using (var context = new SchoolContext())
{
var student = context.Students.FirstOrDefault(s => s.StudentId == 1);
Console.WriteLine(student?.Name);
}
using (var context = new SchoolContext())
{
var student = context.Students.FirstOrDefault(s => s.StudentId == 1);
if (student != null)
{
student.Age = 23;
context.SaveChanges();
}
}
using (var context = new SchoolContext())
{
var student = context.Students.FirstOrDefault(s => s.StudentId == 1);
if (student != null)
{
context.Students.Remove(student);
context.SaveChanges();
}
}
DbSet
কেবল CRUD অপারেশনেই সীমাবদ্ধ নয়, আপনি এর মাধ্যমে আরও উন্নত কুয়েরি অপারেশনও করতে পারেন। উদাহরণস্বরূপ:
LINQ কুয়েরি ব্যবহার করা: LINQ এর সাহায্যে DbSet
থেকে ডেটা ফিল্টার, গ্রুপ, এবং অর্ডার করা যায়।
using (var context = new SchoolContext())
{
var students = context.Students
.Where(s => s.Age > 18)
.OrderBy(s => s.Name)
.ToList();
foreach (var student in students)
{
Console.WriteLine(student.Name);
}
}
Include Method ব্যবহার করে Related Data লোড করা: যদি আপনার মডেল ক্লাসে সম্পর্কিত (related) টেবিল থাকে, তবে Include
মেথড ব্যবহার করে আপনি একাধিক টেবিলের ডেটা লোড করতে পারেন।
using (var context = new SchoolContext())
{
var students = context.Students
.Include(s => s.Courses) // Assuming Student has a related Courses table
.ToList();
foreach (var student in students)
{
Console.WriteLine(student.Name);
foreach (var course in student.Courses)
{
Console.WriteLine(course.Name);
}
}
}
Asynchronous Operations: DbSet
এর মাধ্যমে আপনি অ্যাসিঙ্ক্রোনাস অপারেশনও করতে পারেন, যা অ্যাপ্লিকেশনের পারফরম্যান্স উন্নত করতে সাহায্য করে।
using (var context = new SchoolContext())
{
var students = await context.Students.ToListAsync();
foreach (var student in students)
{
Console.WriteLine(student.Name);
}
}
DbSet
Entity Framework এর একটি গুরুত্বপূর্ণ অংশ যা আপনার ডেটাবেস টেবিলের প্রতিনিধিত্ব করে এবং আপনাকে সেই টেবিলের উপর CRUD অপারেশন করতে সক্ষম করে। DbContext
ক্লাসের মধ্যে DbSet
তৈরি করে, আপনি ডেটাবেসের সাথে কাজ করতে পারেন এবং LINQ বা অন্যান্য পদ্ধতি ব্যবহার করে ডেটা কুয়েরি, ফিল্টারিং, এবং অর্ডারিং করতে পারেন। এটি Entity Framework এর মাধ্যমে ডেটাবেস ম্যানেজমেন্টকে আরও সহজ এবং শক্তিশালী করে তোলে।
common.read_more